﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace CRC.Comun.Presentacion
{

    public partial class UsrThumbnail : UserControl
    {
        #region " Eventos y delegados "

            public delegate void verFoto(Object sender, int pIntId);
            public delegate void seleccionarFoto(Object sender, String pInformacion);
            public delegate void eliminarFoto(Object sender, int pIntId);

            public event verFoto evVerFoto;
            public event seleccionarFoto evSeleccionarFoto;
            public event eliminarFoto evEliminarFoto;

        #endregion

        #region " Atributos "

                private int intId;
                private String strNombre;
                private String strComentarios;
                private int intTamañoEnKB = 0;

                public int Id 
                {
                    get { return this.intId; }
                    set { this.intId = value; }
                }

                public String NombreImagen
                {
                    get { return this.strNombre; }
                    set { this.strNombre = value; }
                }

                public String Comentarios 
                {
                    get { return this.strComentarios; }
                    set { this.strComentarios = value; }
                }

                public int TamañoEnKB 
                {
                    get { return intTamañoEnKB; }
                }
            
            #endregion
        
        public UsrThumbnail()
        {
            InitializeComponent();
        }

        public UsrThumbnail(
            int pIntId, 
            Image pMiniatura, 
            String pStrNombre, 
            String pStrCom,
            int pIntTamEnKB
        ) : this() 
        {
            this.pictureBox1.Image = pMiniatura;
            this.intId = pIntId;
            this.lblName.Text = pStrNombre;
            this.NombreImagen = pStrNombre;
            this.strComentarios = pStrCom;
            this.intTamañoEnKB = pIntTamEnKB;
            this.toolTip1.SetToolTip(lblName, pStrNombre);

            butBorrar.Enabled = true;
            butVerFoto.Enabled = true;
            lblMsg.Visible = false;
        }

        public void PonerImagen(
            int pIntId, 
            Image pMiniatura, 
            String pStrNombre, 
            String pStrCom,
            int pIntTamEnKB)
        {
            this.pictureBox1.Image = pMiniatura;
            this.intId = pIntId;
            this.lblName.Text = pStrNombre;
            this.strNombre = pStrNombre;
            this.strComentarios = pStrCom;
            this.intTamañoEnKB = pIntTamEnKB;
            this.toolTip1.SetToolTip(lblName, pStrNombre);

            butBorrar.Enabled = true;
            butVerFoto.Enabled = true;
            lblMsg.Visible = false;
        }

        private void butVerFoto_Click(object sender, EventArgs e)
        {
            evVerFoto(this, this.intId);
        }

        private void butBorrar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show(
                "¿Estás seguro de querer eliminar la fotografia seleccionada?",
                "Confirmación",  MessageBoxButtons.YesNo, MessageBoxIcon.Question, 
                MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                evEliminarFoto(this, this.intId);
            }
        }

        void UsrThumbnail_Click(object sender, System.EventArgs e)
        {            
            evSeleccionarFoto(this, this.strComentarios);
        }

        public Boolean cargandoImagen 
        {
            set 
            {
                if (value) lblMsg.Text = "Cargando foto ...";
                lblMsg.Visible = value; 
            }
        }
    }    
}
